package lexico;

public class ClasseOperador extends ClasseSimbolo
{

	public ClasseOperador(AnalisadorLexico analisador)
	{
		super(analisador);
	}

	@Override
	public void ler(String ultimoSimbolo)
	{
		AnalisadorLexico analisador = getAnalisador();
		try
		{
			String tmp = ultimoSimbolo + analisador.readChar();

			while (test(tmp))
			{
				ultimoSimbolo = tmp;
				tmp += analisador.readChar();
			}
		} catch (Exception e)
		{
			analisador.setFinal();
		}
		analisador.recuarLeitura();

		String[] opValidos = { "+", "-", "*", "/", ">", "<", ">=", "<=", "<>", "=" };
		int erro = 0;

		for (String op : opValidos)
		{
			if (!ultimoSimbolo.equals(op))
			{
				erro++;
			}
		}

		if (erro == opValidos.length)
		{
			System.out.println("Erro:" + ultimoSimbolo);
		} else
		{
			analisador.addSimbolo(new Simbolo(ultimoSimbolo, Simbolo.OPERADOR));
		}
	}

	@Override
	public boolean test(String simbolo)
	{
		String padrao = "^[<>=\\+\\-\\*/]+$";
		return simbolo.matches(padrao);
	}

}
